// // 需求: 有一个对象需要定义数据类型, {name: 'zs', age: 18}, name必须有,age可选,除此之外还有一些其他属性. 如何定义这个对象的数据类型?

// // interface Iobj {
// //   name: string
// //   age?: number
// //   [propName: string]: string | number
// // }

// // 需求: 有一个数组 [{name: 'zs', age: 18}],要表示这个数组的数据类型

// // interface Iitem {
// //   name: string
// //   age: number
// // }

// // let arr: Iitem[] = [{ name: 'zs', age: 18 }]

// // 如何描述一个函数

// // function fn(x: number, str: string = '123'): string {
// //   return x + str
// // }

// // 类型断言

// interface Cat {
//   name: string
//   run(): void
// }

// interface Fish {
//   name: string
//   swim(): void
// }

function xxx(animal: Cat | Fish) {
  ;(animal as Cat).run()
}

// // type xxx = Iitem[]
// type status = 0 | 1

// (function () {
//   console.log(123)
// })()
